package br.com.trentin.dao.impl;

import br.com.trentin.dao.CidadeDao;
import br.com.trentin.entities.Cidade;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

public class CidadeDaoImpl extends HibernateDaoSupport implements CidadeDao{

    private String str(String strings[]){
        StringBuilder sb = new StringBuilder();
        for (String s : strings){
            sb.append(s);
        }
        return sb.toString();
    }
    
    public List<Cidade> findAll(String ordem){
        return getHibernateTemplate().find(str(new String[]{"from Cidade order by ",(!ordem.equals("") ? ordem : "nome")}));
    }
    
    public Cidade findByNome(String nome){
        return (Cidade)getHibernateTemplate().find(str(new String[]{"from Cidade where upper(nome) = upper('",nome,"')"})).get(0);
    }
    
    public List<Cidade> findLikeNome(String nome){
        return getHibernateTemplate().find(str(new String[]{"from Cidade where upper(nome) like upper('%",nome,"%')"}));
    }
    
    public void addCidade(Cidade cidade){
        getHibernateTemplate().saveOrUpdate(cidade);
    }
 
    public void removeCidade(Cidade cidade){
        getHibernateTemplate().delete(cidade);
    }
}
